#include<stdio.h>
#include<unistd.h>
#include<string.h>
#include<stdlib.h>
//用来观察环境变量、命令行参数用的代码code

//main函数有参数吗？
//是有的
//最多可以有几个？
//3个
//父进程传递给我们的

//声明environ时候不需要初始化，全局变量
extern char **environ; 

//int main(int argc, char *argv[], char *env[])
int main(int argc, char *argv[])
{
    (void)argc;
    (void)argv;
    //(void)env;
    //环境变量具有全局特性，被所有子进程可以继承的
    if(fork()==0)
    {
        for(int i = 0; environ[i]; i++)
        {
            printf("environ[%d]-> %s\n",i,environ[i]);
        }
    }
    sleep(3);
    //for(int i = 0; environ[i]; i++)
    //{
    //    printf("environ[%d]-> %s\n",i,environ[i]);
    //}
    
    //const char *who = getenv("USER");
    //if(who==NULL) return 1;

    //if(strcmp(who,"user1")==0)
    //{
    //    printf("这是程序的正常执行逻辑\n");
    //}
    //else 
    //{
    //    printf("Only user1!!\n");
    //}

    //char *value = getenv("PATH");
    //if(value==NULL) return 1;
    //printf("PATH->%s\n",value);

    //for(int i = 0; env[i]; i++)
    //{
    //    printf("env[%d]-> %s\n",i,env[i]);
    //}

   // if(argc != 2)
   // {
   //     printf("Usage: %s [-a][-b][-c]\n",argv[0]);
   //     return 1;
   // }

   // const char *arg = argv[1];
   // 
   // if(strcmp(arg,"-a")==0)
   //     printf("这是功能1\n");
   // else if(strcmp(arg,"-b")==0)
   //     printf("这是功能2\n");
   // else if(strcmp(arg,"-c")==0)
   //     printf("这是功能3\n");
   // else      
   //     printf("Usage: %s [-a][-b][-c]\n",argv[0]);



   // for(int i = 0; i < argc; i++)
   // {
   //     printf("agrv[%d]: %s \n",i,argv[i]);
   // }

    return 0;
}
